
#include <SPI.h>
#include <TFT_eSPI.h>

// 定义TFT显示屏的背光引脚
#define TFT_BL 1

// 创建TFT_eSPI对象
TFT_eSPI tft = TFT_eSPI();

void setup()
{
  // 初始化串口通信
  Serial.begin(115200);

  // 初始化TFT显示屏
  tft.begin();        // 初始化配置
  tft.setRotation(0); // 设置显示方向

  // 设置背光引脚为输出模式并打开背光
  pinMode(TFT_BL, OUTPUT);
  digitalWrite(TFT_BL, HIGH);

  // 清屏
  tft.fillScreen(TFT_BLACK);

  // 设置文字大小和颜色
  tft.setTextSize(1);
  tft.setTextColor(TFT_YELLOW);

  // 显示文字
  tft.drawString("XiaoHe! QQ496631085", 10, 0);

  tft.setTextSize(2);
  tft.setTextColor(TFT_PINK);
  tft.drawString(" XiaoHe!", 10, 70);

  tft.setTextSize(3);
  tft.setTextColor(TFT_SKYBLUE);
  tft.drawString(" Mi Le Hello!", 0, 110);

  // pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop()
{
  // 12 脚一秒亮 1 秒灭
  // digitalWrite(12, HIGH);
  digitalWrite(13, LOW);
  delay(1000);
  // digitalWrite(12, LOW);
  digitalWrite(13, HIGH);
  delay(1000);
}

// #include <Arduino.h>
// #include <lvgl.h>
// #include <SPI.h>
// #include <TFT_eSPI.h>
// #include "demos/lv_demos.h"
// #include <timer.h>
// // Use hardware SPI
// TFT_eSPI tft = TFT_eSPI();
// static lv_disp_draw_buf_t draw_buf;
// static lv_color_t buf[ 320 * 240 / 10 ];

// /* Display flushing */
// void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
// {
//     uint32_t w = ( area->x2 - area->x1 + 1 );
//     uint32_t h = ( area->y2 - area->y1 + 1 );

//     tft.startWrite();
//     tft.setAddrWindow( area->x1, area->y1, w, h );
//     tft.pushColors( ( uint16_t * )&color_p->full, w * h, true );
//     tft.endWrite();

//     lv_disp_flush_ready( disp_drv );
// }

// void setup() {

//   lv_init();
//   tft.begin();  //初始化配置
//   tft.setRotation(3);//设置显示方向

//   pinMode(TFT_BL,OUTPUT); //打开背光
//   digitalWrite(TFT_BL,1);

//   lv_disp_draw_buf_init( &draw_buf, buf, NULL, 320 * 240 / 10 );

//   /*Initialize the display*/
//   static lv_disp_drv_t disp_drv;
//   lv_disp_drv_init( &disp_drv );
//   /*Change the following line to your display resolution*/
//   disp_drv.hor_res = 320;
//   disp_drv.ver_res = 240;
//   disp_drv.flush_cb = my_disp_flush;
//   disp_drv.draw_buf = &draw_buf;
//   lv_disp_drv_register( &disp_drv );

//   lv_demo_benchmark();
//   Timer0_Init();  //provide 1ms heart beating
// }

// void loop() {
//   lv_timer_handler(); /* let the GUI do its work */
//   delay( 1 );
// }
